package com.aoxiang.zbox.service;

import com.aoxiang.zbox.model.dto.UpdateSortDTO;
import com.aoxiang.zbox.model.entity.TodoSort;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * Description:
 *
 * @author: aoxiang
 * @create: 2025-03-08 20:34
 **/
public interface TodoSortService extends IService<TodoSort> {
    /**
     * 获取某标签下的最大的排序
     *
     * @param labelId
     * @return java.lang.Integer
     * @author aoxiang
     * @create 2025/3/9
     **/
    Integer getMaxSort(Long labelId);

    /**
     * 删除某待办对应的排序
     *
     * @param todoId
     * @return void
     * @author aoxiang
     * @create 2025/3/9
     **/
    void removeByTodoItemId(Long todoId);

    /**
     * 删除某待办某分类下的排序
     *
     * @param labelId
     * @param todoId
     * @param sortType
     * @return void
     * @author aoxiang
     * @create 2025/3/9
     **/
    void removeByTodoItemIdAndLabelId(Long todoId, Long labelId, Integer sortType);

    /**
     * 新增待办时，新增排序
     *
     * @param todoItemId
     * @param labelId
     * @param sortType
     * @return void
     * @author aoxiang
     * @create 2025/3/9
     **/
    void addNewTodoItemSort(Long todoItemId, Long labelId, Integer sortType);

    /**
     * 更新未完成待办展示排序
     *
     * @param updateSortDto
     * @return void
     * @author aoxiang
     * @create 2025/3/9
     **/
    void updateShowSort(UpdateSortDTO updateSortDto);

    /**
     * 更新已完成待办展示排序
     *
     * @param updateSortDto
     * @return void
     * @author aoxiang
     * @create 2025/3/9
     **/
    void updateCompletedSort(UpdateSortDTO updateSortDto);
}
